import { fileURLToPath, URL } from 'node:url'


import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

import path from "path";
// 导入svg插件
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'

// 导入element-plus相关插件
// import AutoImport from 'unplugin-auto-import/vite'
// import Components from 'unplugin-vue-components/vite'
// import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

// https://vitejs.dev/config/
export default defineConfig({
  // 配置插件
  plugins: [
    vue(),
    // 修改 svg 相关配置
    createSvgIconsPlugin({
      // 指定需要缓存的图标文件夹
      iconDirs: [path.resolve(__dirname, './src/assets/icons')],
      symbolId: '[name]'
    })
    // AutoImport({
    //   resolvers: [ElementPlusResolver()],
    // }),
    // Components({
    //   resolvers: [ElementPlusResolver()],
    // }),

  ],
  resolve: {
    // 路径别名
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    },
    // 省略文件名后缀
    extensions: ['.ts', '.json', '.css', '.vue', '.scss', '.js']
  },
  css: {
    preprocessorOptions: {
      scss: {
        // 配置单个全局sass变量
        // additionalData: `$injectedColor: orange;`,

        // 配置多个全局sass变量
        additionalData: `@import '@/assets/scss/variables.scss';`,
      }
    },
  },
  // 本地服务端配置
  server: {
    // 监听所有地址
    host:'0.0.0.0',
    // 运行跨域
    cors:true,
    // 端口号
    port:4000,
    // 反向代理
    // 注意：一定要在封装好的axios请求里面，设置：baseURL: '/api'
    // 否则发请求的时候，还是没有使用反向代码，依然是直接向服务端发请求
    proxy: {
      '/api': {
        target: 'http://localhost:3000',
        changeOrigin: true,
        ws:true,//允许websocket代理
        // 去掉接口中的/api
        rewrite: (path) => path.replace(/^\/api/, ''),
        // 查看真实的请求地址
        // bypass(req, res, options) {
        //   const proxyUrl=options.target+options.rewrite(req.url);
        //   console.log("真实的请求地址：",proxyUrl);
        // },
      },
    }
  }


})


